const express = require('express')
const { query } = require('../db')
const router = express.Router()

// 添加路由
// 新增科室(post /)
router.post('/',async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  // 判断是否为空
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('insert into hs_office set ?',[obj])
  } catch(err) {
    return next(err)
  }
  res.send({
    code: 200,
    msg: '科室添加成功'
  })
})
// 修改科室(put /)
router.put('/', async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  // 判断是否为空
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('update hs_office set ? where id=?',[obj,obj.id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  // 判断是否修改成功
  if(data.changedRows === 0) {
    res.send({
      code: 410,
      msg: '科室修改失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '科室修改成功'
    })
  }
})
// 删除科室(delete /)
router.delete('/', async (req,res,next) => {
  // 获取get传递的参数
  const { id } = req.query
  console.log(id)
  if(!id) {
    return res.send({
      code: 401,
      msg: 'id不能为空'
    })
  }
  // 执行SQL命令，删除
  try {
    var data = await query('delete from hs_office where id=?',[id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  // 判断是否成功
  if(data.affectedRows === 0) {
    res.send({
      code: 410,
      msg: '科室删除失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '科室删除成功'
    })
  }
})
// 科室列表(get /)
router.get('/', async (req,res,next) => {
  // 获取传递的页码
  let { pno } = req.query
  // 设置每页数据量
  const page = 10
  // 判断页码为空
  if(!pno) {
    pno = 1
  }
  // 计算开始查询的值
  let start = (pno - 1) * page
  // 执行SQL命令
  try {
    var data = await query('select * from hs_office order by id desc limit ?,?;select count(*) n from hs_office',[start,page])
  } catch(err) {
    return next(err)
  }
  console.log(data)

  res.send({
    code: 200,
    msg: '科室列表',
    data: data[0],
    total: data[1][0].n,
    pno
  })
})

module.exports = router